目前大家耳熟能詳的CI Server有很多種,
例如Team City, CC.Net, Jenkins等,
其實我第一套使用的CI Server也是Team City,
後來因為某些原因改使用Jenkins之後,
也慢慢地愛上它豐富的PlugIn,以及簡單易用的設定介面,
在接下來的文章之中,也將以Jenkins為主角教大家架設自己的CI Server。
Jenkins是一套由Java所開發的CI Server,
而它的前身也為大家耳熟能詳,就是Hudson。
Jenkins提供了Web的操作介面,可以直接使用瀏覽器來進行各項操作,
甚至不需要撰寫複雜的Build Script,只要簡單的套用PlugIn就可以產出精美的報表,
具有很大的擴充性,甚至可以自己撰寫PlugIn,
今天將向大家介紹Jenkins的特色和優點。
※優點
一、易於安裝
在早期的Hudson版本時,安裝系統還需要使用Java指定來操作,
但隨著版本的演進,現在Jenkins在Windows平台上可直接使用安裝檔進行安裝,
非常的平易近人,就算完全不懂CommandLine指令的人也可以輕易上手。
二、設定簡單
在CI Server中最困擾人的往往是各種檔案的設定,
由於Jenkins擁有豐富的PlugIn以及網頁的操作介面,
很多時候幾乎不需要寫任何的Script,
只要指定要進行分析的資料夾和DLL,就可以完成設定。
三、整合RSS/Email通知
Jenkins提供了RSS訂閱或是Email通知的功能,
我們可以在建置過程中一發生問題就通知使用者,
間接也預防了使用者不小心CheckIn未完成的程式碼或是沒通過測試的程式,
以維持版本控制系統中程式碼的高可用度。
四、豐富的報表
Jenkins支援將測試的結果,測試的覆蓋率,
或是各項靜態分析的數據,透過報表的方式來呈現,
也方便了使用者或是管理人員觀看專案的各種維度,
是否有完成的進行各種測試,或是遵照公司的程式碼撰寫風格,
無形的提升軟體的品質,也增加了開發人員的成就感。
五、支援分散式架構
Jenkins支援分散式架構,
若公司程式庫內容龐大,可架設多台Build Server來同時進行不同專案的建置。
六、大量豐富的套件
Jenkins擁有數量龐大的3rd party plugins,
我們可以根據自己的需求來選用,在日後也將向大家陸續介紹在.Net常使用的Plugin,
若不滿足你的需求,你甚至可以撰寫或分享自己的PlugIn,
有很高的彈性。
※結語
其實CI Server的選擇十分的多樣化,
沒有所謂最好的選擇,只有最適合自己的選擇,
CI Server最重要的是擁有它的精神,而工具只是一種輔助,
希望透過CI Server,來督促我們為了軟體品質的提生而努力,
無形中也會讓我們因為撰寫高品質的程式碼而慢慢進步,
希望大家也可以享受到CI Server所帶來的好處,
並且實現最適合自己的Best Practice!